import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
    1、集合概述：
        * 集合实际上就是一个容器
        * 集合当中存储的都是java对象的内存地址
        * 在java中每一个不同的集合，底层会对应不同的数据结构，往不同的集合中存储元素，等于将数据放到了不同的数据结构当中。
        * 集合类和集合接口都在java.util.*包下
        * 在java集合分为两大类：
            - 一类是单个方式存储元素：
                单个方式存储元素，这一类集合的超级父接口是：java.util.Collection;
            - 一类是以键值对的方式存储元素
                以键值对的方式存储元素，这一类集合的超级父接口是：java.util.Map
    2、Collection接口中常用方法
        * Collection中存储的元素
            没有使用"泛型"之前，Collection中可以存储Object的所有子类型，用了"泛型"之后，Collection中只能存储某个具体的对象
        * Collection中的常用方法
            boolean	add(E e) 向集合中添加元素
            int	size() 获取集合元素个数
            void clear() 清空集合
            boolean	contains(Object o) 判断集合是否包含某一个元素， 是为真
            boolean	remove(Object o) 删除集合某个元素
            boolean	isEmpty() 集合中是否有元素，空为真
            Object[] toArray() 集合转换成数组
    3、迭代器专题
        * 迭代器对象Iterator的方法
            boolean	hasNext() 是否还有元素可以迭代
                Returns true if the iteration has more elements.
            Object next() 返回迭代的下一个元素
                Returns the next element in the iteration.
        * 集合结构只要发生改变，迭代器就要重新获取*************
        * 在迭代集合元素的过程中，不能调用集合对象的remove方法，可以用迭代器的删除方法***************
 */
public class CollectionTest01 {
    public static void main(String[] args) {
        Collection c = new ArrayList();   //ArrayList有序可重复
        c.add(3.14);  //自动装箱
        c.add("文梦甜");
        c.add("王强");
        c.add(new Object());

        System.out.println("集合的元素个数：" + c.size());
        boolean b1 = c.contains("文梦甜");
        System.out.println(b1);
        //c.remove(3.14);
        System.out.println(c.isEmpty());
        System.out.println("集合的元素个数：" + c.size());

        // boolean	hasNext() 是否还有元素可以迭代
        //       Returns true if the iteration has more elements.
        // Object next() 返回迭代的下一个元素
        //       Returns the next element in the iteration.
        Iterator it = c.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}
